package main

import "fmt"

/**
字符串
go语言中字符串是以双引号""包裹起来的一串字符
go语言中单引号''包裹起来的是字符类型 ！！

// 字符串
str := "hello"
// 单独的字母、数字、符号表示一个字符
ch := 'a'
ch1 := '1'
ch2 := '你'
// 字节：1个字节 = 8位 (8Bit) = 8个二进制位
// 字符：1个字符 'A'= 1个字节 (英文字符)
// 一个utf-8编码汉字字符 '中' = 一般占用3个字节
*/

/***
字符类型：本质上就是一个整数，也可以直接参与运算，输出字符的时候，会将对应的码值做一个输出；
字母，数字，标点等符号，底层是按照ASCII码进行存储。
*/
func main() {
	// 定义字符类型的数字
	var name byte = 'a'
	fmt.Println(name)

	var name1 byte = '7'
	fmt.Println(name1)

	var name2 byte = ')'
	fmt.Println(name2)

	// cannot use '中' (untyped rune constant 20013) as byte value in variable declaration (overflows)
	// var name3 byte = '中'
	var name3 int = '中'
	fmt.Println(name3)

	// 汉字字符，底层对应的是Unicode码值
	// 对应的码值为20013 ，byte类型溢出，可以用int类型存储
	// 总结：Golang的字符对应的使用是UTF-8编码，(Unicode是对应的字符集，UTF-8是Unicode的其中一种编码方案)

}
